In the domain of health sciences, such as drug safety, a “case series” is a list of adverse event cases. An “adverse event case” or “case” is a data record of a particular incident of an adverse event occurring in a patient. Each adverse event case can have a unique identifier. In health science in general, a case series can also be identified as a “patient list,” or “subject list.”
Many drug safety systems can produce and consume case series, where a “drug safety system” is a system that stores drug safety data, and where drug safety data includes data related to the safety of one or more drugs, such as one or more adverse event cases. Typically, inside these systems, an executable process produces a case series and passes it to one or more executable processes which operate on it. In a common scenario, an executable process that executes a query on a data source, such as a drug safety system, can produce a case series and pass it to an executable process that executes a report. In this scenario, the case series is the result of the executable process that executes the query on the data source. In other words, a list of cases that comprise the case series is a list of cases that matches the conditions specified in the query that is executed by the executable process on the data source. The report can be the desired output format of the case series, and the report can be executed by an executable process. The case series can typically contain at least the unique identifier (typically identified as a “case identifier”) for each case, and may also contain additional case data or metadata that represent the adverse event cases in the case series. The data fields in the case series do not necessarily have to be the same as the data fields specified in the query or in the report. The data fields in the case series can typically be fixed while the report data fields can be changed depending on the desired output format.
Further, it can be required by the relevant industry to have a mechanism where a user can retrieve one or more case series using a point-in-time query. A “point-in-time query” is a query that is executed against data stored within a data source, based on a specified period of time (such as a date and/or time). For example, a data source, such as a drug safety system, can contain multiple revisions of data, such as a case that is a part of a case series, where different revisions are associated with its own specified period of time. A point-in-time query can be executed on the data source (e.g., a drug safety system), where the point-in-time query can return revisions of data (e.g., one or more cases that are part of a case series), that were stored in the data source as of a specified date (e.g., one month prior to the current date). Thus, the point-in-time query can return revisions of one or more cases as of the specified date. A point-in-time query generally requires more resources than a “standard” (i.e., current time) query, and thus, is generally significantly slower than a standard query. Thus, known drug safety systems typically will not provide support for point-in-time queries, or will only embed logic for a specific point-in-time query algorithm into one or more “canned” reports or data views. Such drug safety systems do not provide a flexible solution that supports different kinds of point-in-time query algorithms, and do not provide results based on different analysis needs.